# 元组的操作

"""
1. 构成元组：
            a: a = ()
            b: b = tuple()

2. 创建元组的时候，指定初始值

3. 元组中的元素可以是任何类型

4. 通过下标来访问元组中的元素，下标也是从0开始，到len-1结束，也可以是负数

5. 通过切片来获取元组中的一个部分

6. 同样可以使用for循环来比遍历每一个元素

7. 可以使用 in 来判定元素是否存在，使用 index 查找元素的下标

8. 可以使用 + 来拼接两个元组

9. 元组只是支持“读”的操作，不能进行“修改”类的操作

10. 当进行多元赋值的时候，其实本质上是按照元组的方式来进行工作的

元组不能修改 => 不可变对象
不可变对象，是可以哈希的
"""

# 1.
# a = ()
# print(type(a))
# b = tuple()
# print(type(b))

# 2.
# a = (1, 2, 3, 4, 5)
# print(a)   1 2 3 4 5

# 3.
# a = (1, 2, 3, 4, 5, 'hello')
# print(a)  # 1 2 3 4 5 'hello'

# 4.
# a = (1, 2, 3, 4, 5)
# print(a[2])    # 3
# print(a[-1])   # 5

# 5.
# a = (1, 2, 3, 4, 5)
# print(a[:3]) # 1 2 3

# 6.
# a = (1, 2, 3, 4, 5)
# for i in a:
#     print(i)  # 1 2 3 4 5

# 7.
# a = (1, 2, 3, 4, 5, 6, 7, 8)
# print(3 in a)  # True
# print(a.index(4))  # 3

# 8.
# a = (1, 2, 3)
# b = (4, 5, 6)
# print(a+b)  # 1 2 3 4 5 6

# 9.
# a = (1, 2, 3)
# a[0] = 100
# a.append(5)
# a.pop(0)
# a.extend()
# 以上的代码都是会出现错误的，因为元组不支持这些修改类的操作

# 10.
def getPoint():
    x = 10
    y = 20
    return x, y

x, y = getPoint()
print(x, y)
print(type(getPoint()))  # class 'tuple'  元组类型
